Control of A Computer System in A Power-Down State

ABSTRACT

Techniques are disclosed relating a computer system in a power-down state receiving a communication from a remote computer system and performing a task indicated by the communication. The computer system in a power-down state performs the task without transitioning from the power-down state into a power-up state. Exemplary tasks performed in the power-down state include uploading one or more files to a remote computer system, downloading one or more files from a remote computer system, deleting one or more files from the computer system, accessing input/output devices, disabling the computer system, and performing a memory check on the computer system.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.16/994,372, entitled “Control of A Computer System in A Power-DownState,” filed Aug. 14, 2020 (now U.S. Pat. No. 11,481,019), which is acontinuation of U.S. application Ser. No. 15/721,411, entitled “CONTROLOF A COMPUTER SYSTEM IN A POWER-DOWN STATE,” filed Sep. 29, 2017 (nowU.S. Pat. No. 10,747,295) which claims priority to U.S. Provisional ApplNo. 62/514,750, entitled “CONTROL OF A COMPUTER SYSTEM IN A POWER-DOWNSTATE,” filed Jun. 2, 2017; the disclosures of each of theabove-referenced applications are incorporated by reference herein intheir entireties.

BACKGROUND Technical Field

This disclosure relates generally to the operation of a computer systemin a power-down state.

Description of the Related Art

Computer systems or devices may be configured to have various powerstates. For example, in one power state, all, or substantially all, ofthe components of a computer system may receive power, while in anotherpower state all, or substantially all of the components may receive nopower. A computer system may also have one or more intermediate powerstates in which only portions of the system receive power.

Computer systems in use today commonly have a network interface thatallows either wired or wireless communication with other devices orsystems. Such communication may be performed in response to inputreceived from a user physically operating the computer system, as wellas to input received remotely. The latter functionality may allow, forexample, for a remote user to be able to cause the computer system toplay a sound, which may facilitate locating the computer system.

SUMMARY

In an embodiment, a computer system includes a processor circuit and aplurality of input/output device including a network interface and apower control device. The computer system is configured, in response toreceiving a user-initiated power-down request via a particular one ofthe plurality of input/output (I/O) devices, to enter a power down-statein which user communication with the computer system is disabled via theplurality of input/output devices except via the network interface and apower control device until a user-initiated power-up request issubsequently received via the power control device. The computer systemis further configured, in the power down state, to maintain power to theprocessor circuit such that, in response to a communication received viathe network interface, the processor circuit is configured to perform atask specified by the communication without exiting the power-downstate. Further, the computer system is configured, in response toreceiving a power-up request via the power control device, to exit thepower-down state and enter a power-up state in which the computer systemis responsive to user commands via ones of the I/O devices other thanthe network interface and the power control device.

In another embodiment, a computer system receives a user-initiatedpower-down request for the computer system, and in response to thepower-down request, the computer system enters a power-down state inwhich user communication with the computer system is disabled, exceptvia a network interface of the computer system or a power control deviceof the computer system, until receiving a user-initiated power-uprequest. While in the power-down state, the computer system receives acommunication via the network interface, and in response to thecommunication, a processing element of the computer system performs atask specified by the communication without exiting the power-downstate. In response to subsequently receiving the user-initiated power-uprequest, the computer system enters a power-up state in which usercommunication with the computer system is restored via input/outputdevices of the computer system other than the network interface or powercontrol device.

In still another embodiment, a computer system includes a firstprocessor circuit, a second processor circuit, and a network interface.The computer system is configured, in response to receiving auser-initiated power-down request, to enter a power-down state in whichpower is removed from a first portion of the computer system thatincludes the first processor circuit, but in which power is stillsupplied to a second portion of the computer system that includes thesecond processor circuit and the network interface. The computer systemis further configured, in the power-down state, to perform, by thesecond processor circuit and without exiting the power-down state, atask specified by a communication received via the network interface.Further, the computer system is configured such that the secondprocessor circuit and the network interface are not able to be turnedoff via a request initiated by the user.

In various embodiments, the task performed by a computer system in apower-down states relates to one or more of uploading data from thecomputer system to a remote computer system, downloading data from aremote computer system and storing the data on the computer system,disabling the computer system, deleting one or more files stored in thememory of the computer system, performing a check on the memory of thecomputer system, or accessing an input/output device of the computersystem.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a computer system configured toperform one or more tasks in a power-down state in accordance with thedisclosed embodiments.

FIG. 2 is a block diagram showing further detail of the processorcircuit and memory of the computer system of FIG. 1 in accordance withvarious embodiments.

FIG. 3 is a block diagram showing further detail of the input/outputdevices of the computer system of FIG. 1 in accordance with variousembodiments.

FIG. 4 is a flowchart representing a method for performing a task with acomputer system in a power-down state in accordance with the disclosedembodiments.

FIGS. 5-10 are flowcharts showing further detail of some of theoperations performed in a power-down state in the method of FIG. 4 inaccordance with various embodiments.

This disclosure includes references to “one embodiment” or “anembodiment.” The appearances of the phrases “in one embodiment” or “inan embodiment” do not necessarily refer to the same embodiment.Particular features, structures, or characteristics may be combined inany suitable manner consistent with this disclosure.

Within this disclosure, different entities (which may variously bereferred to as “units,” “circuits,” other components, etc.) may bedescribed or claimed as “configured” to perform one or more tasks oroperations. This formulation—[entity] configured to [perform one or moretasks]—is used herein to refer to structure (i.e., something physical,such as an electronic circuit). More specifically, this formulation isused to indicate that this structure is arranged to perform the one ormore tasks during operation. A structure can be said to be “configuredto” perform some task even if the structure is not currently beingoperated. A “computer system configured enter a power-down state” isintended to cover, for example, a computer system has circuitry thatperforms this function during operation, even if the computer system inquestion is not currently being used (e.g., a power supply is notconnected to it). Thus, an entity described or recited as “configuredto” perform some task refers to something physical, such as a device,circuit, memory storing program instructions executable to implement thetask, etc. This phrase is not used herein to refer to somethingintangible.

Reciting in the appended claims that a structure is “configured to”perform one or more tasks is expressly intended not to invoke 35 U.S.C.§ 112(f) for that claim element. Accordingly, none of the claims in thisapplication as filed are intended to be interpreted as havingmeans-plus-function elements. Should Applicant wish to invoke Section112(f) during prosecution, it will recite claim elements using the“means for” [performing a function] construct.

As used herein, the terms “first,” “second,” etc. are used as labels fornouns that they precede, and do not imply any type of ordering (e.g.,spatial, temporal, logical, etc.) unless specifically stated. Forexample, references to “first” and “second” processor circuit would notimply a temporal ordering between the routines unless otherwise stated.

As used herein, the term “based on” is used to describe one or morefactors that affect a determination. This term does not foreclose thepossibility that additional factors may affect a determination. That is,a determination may be solely based on specified factors or based on thespecified factors as well as other, unspecified factors. Consider thephrase “determine A based on B.” This phrase specifies that B is afactor is used to determine A or that affects the determination of A.This phrase does not foreclose that the determination of A may also bebased on some other factor, such as C. This phrase is also intended tocover an embodiment in which A is determined based solely on B. As usedherein, the phrase “based on” is thus synonymous with the phrase “basedat least in part on.”

DETAILED DESCRIPTION

This disclosure describes a computer system configured to perform one ormore tasks while the computer system is in an intermediate power state.Broad embodiments of the computer system are described in reference toFIG. 1 . Further details relating to the processor circuit and memory ofthe computer systems are discussed with reference to FIG. 2 . Furtherdetails relating to the input/output devices of the computer systems insome embodiments are discussed with reference to FIG. 3 . Broadembodiments of the operation of the computer system are described inreference to FIG. 4 . Further details relating to the operationsperformed by the computer system in the power-down state are describedwith reference to FIGS. 5-10 .

Referring now to FIG. 1 , a block diagram of a computer system 100 isdepicted. In the illustrated embodiment, the computer system includes aprocessor circuit 110, one or more input/output (I/O) devices 120including a network interface 122 and a power control device 130, and amemory 140. During operation, network interface 122 may receivecommunication 150. Various components of computer system 100 may becoupled together in various manners, or via a bus interconnection (notshown).

Computer system 100 may be any of a number of computing devicesincluding, but not limited to, a server system, personal computersystem, desktop computer, laptop or notebook computer, mainframecomputer system, tablet computer, handheld computer, workstation,network computer, embedded computer, a consumer device such as a mobilephone, music player, personal data assistant (PDA), or wearable computer(e.g., a watch, glasses, etc.). Computer system 100 may receive powervia an external source (e.g., a power outlet coupled to an electricalgrid) (not shown), an integrated source (not shown) such as an energystorage device (e.g., battery, fuel cell, etc.) or energy generationdevice (e.g., one or more solar cells), or a combination. In someembodiments, computer system 100 includes more than one power supply(e.g., an external source providing power from the grid when plugged inand an integrated battery providing power when the external power sourceis not providing power).

Processor circuit 110 includes a plurality of components configured toperform various calculations, data processing, logical operations, etc.associated with operating computer system 100. For example, inembodiments where the computer system 100 runs an operating system(e.g., Apple iOS®, Microsoft Windows®), the processor circuit 110 mayexecute the operating system as well as one or more programs running ontop of the operating system (e.g., a web browser, word processor, videoplayer, etc.). During operation, processor circuit 110 may send orreceive information from the I/O devices 120 and memory 140. Processorcircuit 110 may also receive information from power control device 130(e.g., a power-down request, a power-up request) during operation.Processor circuit 110 is discussed herein in further detail in referenceto FIG. 2 . In various embodiments, processor circuit 110 (or variousprocessor circuits within 110) may contain a cache or other form ofon-board memory.

The one or more I/O devices 120 include a network interface 122, a powercontrol device 130, and any of a number of the other I/O devices 120.I/O devices 120 may be configured to receive input from a user or othercomputer systems and/or to provide output to a user or other computersystems. An I/O device 120 may interface with the processor circuit 110directly, or through an I/O interface (not shown). An I/O interface maybe any of various types of interfaces configured to couple to andcommunicate with other devices, according to various embodiments. In oneembodiment, the I/O interface is a bridge chip (e.g., Southbridge) froma front-side to one or more back-side buses. The I/O interfaces may becoupled to one or more I/O devices 120 via one or more correspondingbuses or other interfaces. Various I/O devices 120 are discussed infurther detail herein in connection with FIG. 3 .

Network interface 122 may be any of a number of devices that computersystem 100 may use to connect to other computer systems on a network. Insome embodiments, network interface 122 may be wired (e.g., an Ethernetport) or wireless (e.g., an IEEE 802.11 wireless receiver, a cellularreceiver), or a combination. In some embodiments, the one or more I/Odevices 120 includes multiple network interfaces 122 (e.g., an Ethernetport, an IEEE 802.11 wireless receiver, and a cellular receiver). Invarious embodiments, network interface 122 is connected to a local areanetwork, the Internet, or both. Network interface 122 receivescommunications from the network (e.g., sent by a remote computer system)and relays them to processor circuit 110 and sends communications to thenetwork (e.g., to a remote computer system) as requested by processorcircuit 110.

Network interface 122 is configured to receive communications 150. Suchcommunications 150 may come from a remote computer system (not shown)and may include information indicating a task to be performed bycomputer system 100 in a power-down state as discussed herein. Computersystem 100 may be configured to authenticate the remote computer system(not shown) while computer system 100 is in a power-up state, and thendetermine whether a communication 150 received while computer system 100is in the power-down state was received from the authenticated remotecomputer system. For example, such authentication may include receivingcryptographic information (e.g., a public key) from the remote computersystem. The authentication may, for example, be tied to a user accountand password of a user of computer system 100. The authentication mayalso be tied to a biometric identifier of the user (e.g., thumbprint,retina scan, voice scan, etc.). When a communication 150 is received inthe power-down state, computer system 100 may determine whether thecommunication 150 was received from the authenticated remote computersystem (not shown) using, for example, the received cryptographicinformation. In some embodiments, network interface 122 may establish acommunication link with the remote computer system (not shown) duringthe power-up state and maintain the communication link during apower-down state. In some embodiments, network interface 122 may receivecommunications 150 from any number of remote computer systems, but whenin the power-down state only respond to certain communications 150(e.g., communications 150 received from an authenticated remote computersystem, communications 150 received form a remote computer system withwhich network interface 122 has maintained a communication link). Insome embodiments, computer system 100 may only respond to communications150 containing certain information during the power-down state (e.g., acertain sequence of bits at the beginning of the communication 150).

Power control device 130 is a physical control that, in response to auser-initiated action, is configured to control the supply of power tocomputer system 100. Accordingly, power control device 130 may be, forexample, a power button, power switch, power toggle control, etc.Changing the state of power control device 130 (e.g., by pressing apower button) may thus be said to be a user-initiated action, or,alternately a user-initiated power request (e.g., a power-up request, apower-down request). Power control device 130 is configured to causeelectrical power to be connected to or disconnected from computer system100. In various embodiments, power control device 130 may control oraffect the operation of a power supply circuit within computer system100.

In some embodiments, in operation power control device 130 may receive auser manipulation (e.g., press of a power control button) and inresponse send a power request (e.g., power-up request, a power-downrequest) to the computer system 100 (e.g., to a power supply controllerof the computer system [not shown]) to cause electrical power to beconnected or disconnected to computer system 100. In such embodiments, auser activation of power control device 130 (e.g., button on thekeyboard) may cause an electrical signal to be sent to computer system100 causing computer system 100 to begin to transition into a power-upstate (or to transition into a power-down state). In some of suchembodiments, power control device 130 may be a button on a keyboard ofthe computer system 100. In others of such embodiments and wherecomputer system 100 is a mobile phone or tablet computer, power controldevice 130 may be a power button disposed on one or more of a frontsurface of computer system 100, a back surface of computer system 100, aside surface of computer system 100.

In other embodiments, power control device 130 includes components whichin operation physically complete a circuit allowing power to flow from apower supply to computer system 100 or physically disconnect a circuitthereby preventing power from flowing from a power supply to computersystem 100. Power control device 130 may be configured to cause computersystem 100 to transition from a power-down state to a power-up state(e.g., by sending a power-up request to computer system 100) or to causecomputer system 100 to transition from a power-up state to a power-downstate (e.g., by sending a power down request to the computer system100). As discussed herein, however, computer system 100 may receive apower-up request or power-down request from other components (e.g.,network interface 122, others of the plurality of I/O devices).

Memory 140 may be implemented using different physical memory media,such as hard disk storage, floppy disk storage, removable disk storage,flash memory, random access memory (RAM—SRAM, EDO RAM, SDRAM, DDR SDRAM,RAMBUS RAM, etc.), read only memory (PROM, EEPROM, etc.), and so on.Memory 140 may provide persistent storage for various programs and dataas discussed herein. Memory in computer system 100 is not limited toprimary storage such as memory 140. Rather, computer system 100 may alsoinclude other forms of storage such as cache memory in processor circuit110 and secondary storage on I/O Devices 120 (e.g., a hard drive,storage array, etc.). In some embodiments, these other forms of storagemay also store program instructions executable by processor circuit 110.Memory 140 is discussed in further detail herein with respect to FIG. 2.

In operation, computer system 100 may enter various power states. All,some, or none of the components of computer system 100 may receiveelectrical power during a particular power state. As used herein, a“power-up state” refers to a power state in which relatively morecomponents of computer system 100 are receiving electrical power thanwould be in a “power-down state.” Conversely, as used herein, a“power-down state” refers to a power state in which relatively fewercomponents of computer system 100 are receiving electrical power thanwould be in a “power-up state.” In the power-down state, at least aportion of processor circuit 110 and network interface 122 receiveselectrical power. In some embodiments, a computer system 100 in apower-down state appears “turned-off” to users and in a power-up stateappears “turned-on” to users. In various embodiments, a computer system100 in a power-up state is responsive to user input received via alarger number of I/O devices 120 than a computer system 100 in apower-down state. The number of I/O devices 120 responsive to user inputin a power-up state and a power-down state may vary depending upon thetype of computer system 100 (e.g., laptop computer, tablet computer,mobile phone, etc.). Various types of I/O devices 120 other than networkinterface 122 and power control device 130 are discussed herein withreference to FIG. 3 .

In some embodiments in which computer system 100 is a desktop computeror laptop computer, I/O devices 120 include the network interface 122,power control device 130, a keyboard, a pointing device, and one or moredisplays. In a power-up state, such a desktop computer or laptopcomputer may display a graphical user interface on the one or moredisplays and is responsive to user commands (e.g., button presses)received via the keyboard and pointing device in addition to inputreceived via network interface 122 and power control device 130. In apower-down state, such a desktop computer or laptop computer may notdisplay a graphical user interface on the one or more displays and maynot be responsive to user commands received via the keyboard andpointing device. In a power-down state, however, such a desktop computeror laptop computer may be responsive to input received via networkinterface 122 (e.g., communication 150) and input received via powercontrol device 130 (e.g., a power-up request). In some embodiments, adesktop computer or laptop computer may also include a microphone, imagecapture device, and/or peripheral device port (e.g., headphone jack, USBport, Lightning port). While such a microphone, image capture device, orperipheral device port may be accessed to perform a task in a power-downstate as discussed herein, such a microphone, image capture device, orperipheral device port might not otherwise be responsive to usercommands during a power down state but would generally be responsive touser commands during a power-up state. In some embodiments, a desktopcomputer or laptop computer may also include one or more speakers. Whilesuch speakers may be accessed to perform a task in a power-down state asdiscussed herein, such speakers may not otherwise play sounds during apower-down state.

In some embodiments in which computer system 100 is a tablet computer,mobile phone, or wearable computer, I/O devices 120 include the networkinterface 122, power control device 130, a touch-display, and one ormore physical controls (e.g., buttons, switches, etc. distinct from thepower control device 130). In a power-up state, such a tablet computer,mobile phone, or wearable computer may display a graphical userinterface on the touch-display and be responsive to user commands (e.g.,button presses, display gestures) received via the touch-display and/orone or more physical controls in addition to input received via networkinterface 122 and power control device 130. In a power-down state,however, such a tablet computer, mobile phone, or wearable computer maynot display a graphical user interface on the touch-display or beresponsive to user commands received via the touch-display or one ormore buttons. In a power-down state, however, such a tablet computer,mobile phone, or wearable computer may be responsive to input receivedvia network interface 122 (e.g., communication 150) and input receivedvia power control device 130 (e.g., a power-up request). In someembodiments, a tablet computer, mobile phone, or wearable computer mayalso include a microphone, image capture device, and/or peripheraldevice port (e.g., headphone jack, USB port, Lightning port). While sucha microphone, image capture device, and/or peripheral device port may beaccessed to perform a task in a power-down state as discussed herein,such a microphone, image capture device, and/or peripheral device portmight not otherwise be responsive to user commands during a power downstate, they may be responsive to user commands during a power-up state.In some embodiments, a tablet computer, mobile phone, or wearablecomputer may also include one or more lights or speakers. While suchlights or speakers may be accessed to perform a task in a power-downstate as discussed herein, such lights will not otherwise be illuminatedand such speakers will not otherwise play sounds during a power-downstate but may be illuminated or play sounds during a power-up state.

Thus, in some embodiments, a computer system 100 comprises a processorcircuit 110 and a plurality of I/O devices 120 including a networkinterface 122 and a power control device 130. In such embodiments, thecomputer system 100 is configured, in response to receiving auser-initiated power-down request via a particular one of the pluralityof I/O devices 120, to enter a power-down state in which usercommunication with the computer system 100 is disabled via the pluralityof I/O devices 120 except via the network interface 122 and powercontrol device 130 until a power-up request is subsequently received bythe computer system 100. In these embodiments, the computer system 100is further configured to, in the power-down state, maintain power to theprocessor circuit 110 such that, in response to a communication receivedvia the network interface 122, the processor circuit 110 is configuredto perform a task specified by the communication without exiting thepower-down state. In such embodiments, the computer system is configuredfurther still to, in response to receiving a power-up request, exit thepower-down state and enter a power-up state in which the computer system100 is responsive to user commands via ones of the I/O devices 120 otherthan the network interface 122 and the power control device 130.

In some embodiments, computer system 100 comprises a processor circuit110 and a plurality of I/O devices 120 including a network interface122, a power control device 130, one or more displays, a keyboard, and apointing device. In such embodiments, the computer system 100 isconfigured, in response to receiving a user-initiated power-down requestvia a particular one of the plurality of I/O devices 120, to enter apower-down state in which the one or more displays does not display auser interface and user communication with the computer system 100 isdisabled via the keyboard and pointing device until a power-up requestis subsequently received. In these embodiments, the computer system 100is further configured to, in the power-down state, maintain power to theprocessor circuit 110 such that, in response to a communication receivedvia the network interface 122, the processor circuit 110 is configuredto perform a task specified by the communication without exiting thepower-down state. In such embodiments, the computer system is configuredfurther still to, in response to receiving a power-up request, exit thepower-down state and enter a power-up state in which a user interface isdisplayed on the one or more displays and the computer system 100 isresponsive to user commands via the keyboard and pointing device.

In some embodiments, computer system 100 comprises a processor circuit110 and a plurality of I/O devices 120 including a network interface122, a power control device 130, a touch-display, and one or more otherphysical controls. In such embodiments, the computer system 100 isconfigured, in response to receiving a user-initiated power-down requestvia a particular one of the plurality of I/O devices 120, to enter apower-down state in which the touch-display does not display a userinterface and user communication with the computer system 100 isdisabled via the touch-display and one or more other physical controlsuntil a power-up request is subsequently received. In these embodiments,the computer system 100 is further configured to, in the power-downstate, maintain power to the processor circuit 110 such that, inresponse to a communication received via the network interface 122, theprocessor circuit 110 is configured to perform a task specified by thecommunication without exiting the power-down state. In such embodiments,the computer system is configured further still to, in response toreceiving a power-up request, exit the power-down state and enter apower-up state in which a user interface is displayed on thetouch-display and the computer system 100 is responsive to user commandsvia the touch-display and one or more buttons.

In embodiments in which computer system 100 runs an operating system(e.g., a primary operating system for computer system 100 such as AppleiOS® or Microsoft Windows®), the operating system is booted up andrunning in the power-up state. In some embodiments, transitioning to thepower-up system includes booting this primary operating system, whiletransitioning to power-down state including running outside the auspicesof the primary operating system (e.g., by disabling or stopping itsexecution). As discussed herein, certain components of the computersystem receive power in the power-down state as long as power isavailable (e.g., an integrated battery has available power). In some ofsuch embodiments, a second processor circuit (e.g., a second processorcircuit 202 discussed below in connection to FIG. 2 ) may, in operation,also execute a secondary operation system to implement the various tasksperformed in a power-down state as discussed herein.

In operation, computer system 100 is configured, in response toreceiving a user-initiated power-down request via a particular one ofthe plurality of I/O devices, to enter a power-down state in which usercommunication with computer system 100 is disabled via the plurality ofI/O devices 120 except via the network interface 122 or power controldevice 130 until a user-initiated power-up request is subsequentlyreceived via power control device 130. In some embodiments, computersystem 100 is configured, in the power-down state, to maintain power toprocessor circuit 110 such that, in response to a communication 150received via network interface 122, processor circuit 110 is configuredto perform a task specified by the communication 150 without exiting thepower-down state. Examples of such tasks are discussed herein inconnection to FIGS. 5-10 .

In some embodiments, computer system 100, in response to receiving apower-up request via power control device 130, is configured to exit thepower-down state and enter a power-up state in which computer system 100is responsive to user commands via ones of the I/O devices 120 otherthan network interface 122 and power control device 130. In someembodiments, computer system 100, in response to receiving power-uprequest via the power control device 130, is configured to exit thepower-down state, boot-up an operating system of computer system 100,and enter the power-up state in which computer system 100 is responsiveto user commands via ones of the I/O devices 120 other than networkinterface 122 or power control device 130. In some embodiments, computersystem 100, in the power-up state, is configured to one or more of:respond to user commands via one or more of a keyboard, pointing device,or touch-display; or cause a user interface to be displayed to a user.In such embodiments, the I/O devices 120 include the keyboard, pointingdevice, touch-display, and display on which the user interface isdisplayed.

Computer system 100 disclosed herein may, therefore, be used toaccomplish any of a number of tasks in the power-down state. In someembodiments, to a user, computer system 100 appears to be completely“turned off” (e.g., no user interface is being displayed on any monitorscoupled to computer system 100, computer system 100 does not respond touser input such as button presses on an I/O device 120 such as akeyboard), but computer system 100 in fact has the capability to performvarious tasks as requested in communications 150. Such communications150 may be received with network interface 122 during the power-downstate so long as network interface 122 is able to receive suchcommunications 150 (e.g., network interface 122 is in range of awireless communication access point such as a cell tower or Wi-Fitransmitter). As will be described below, the ability to perform certaintasks in a power-down state may confer various advantages such asincreased data security (e.g., by remotely backing up or deleting dataon a lost computer system 100, disabling a computer system 100 withsensitive information), the ability to locate a misplaced or stolencomputer system 100 (e.g., by determining the geographic location of acomputer system 100), increased convenience (e.g., by downloading datafrom a remote computer system, checking memory 140, accessing an I/Odevice).

Additionally, the ability to perform various tasks in a power-down stateis an improvement over previous techniques such as wake-on LAN. Inprevious wake-on LAN techniques, a wake-on LAN computer system could betransitioned to a power-up state remotely via a wake-on LANcommunication (e.g., a communication with a certain sequence ofinformation or “magic packet”). To receive such wake-on LANcommunications, a wake-on LAN computer system provides power to itsnetwork interface during power-down states. Upon receiving the wake-onLAN communication, the network interface causes the wake-on LAN computersystem to transition to a power-up state. That is, with wake-on LAN acomputer system could be remotely turned on, but the wake-on LANcomputer system could not perform tasks in the power-down state withouttransitioning to a power-up state.

Referring now to FIG. 2 , a block diagram showing further detail ofprocessor circuit 110 and memory 140 of a computer system 100 inaccordance with various embodiments is depicted. In the embodimentsdepicted in FIG. 2 , processor circuit 110 includes a first processorcircuit 200 and a second processor circuit 202 and memory 140 includes afirst partition 210 and a second partition 220.

In some embodiments, first processor circuit 200 comprises a firstintegrated circuit and second processor circuit 202 comprises a secondintegrated circuit. In some embodiments, first processor circuit 200includes firmware to control the operation of first processor circuit200. In some embodiments, second processor circuit 202 includes firmwareto control the operation of second processor circuit 202. The firstprocessor circuit 200 and second processor circuit 202 have separateconnections to the one or more power supplies of the computer system 100such that in operation of the computer system 100 the second processorcircuit 202 receives power during a power-up state and a power-downstate and the first processor circuit 202 receives power during thepower-up state but not the power-down state. In some embodiments, firstprocessor circuit 200 and the second processor circuit 202 may each havetheir own dedicated network interface 122. In such embodiments, networkinterface 122 dedicated to the second processor circuit 202 receives thecommunications 150 including instructions to perform one or more tasksin a power-down state as discussed herein.

The first partition 210 of memory 140 is configured to store at leastone or more programs 212 and data 214. The second partition 220 isconfigured to store at least one or more second processor programs 222and second processor data 224. In some embodiments, first partition 210is accessible by the first processor circuit 200 and the secondprocessor circuit 202, but second partition 220 is accessible by thesecond processor circuit 202 but not first processor circuit 200. Theone or more programs 212 may be any of a number of programs implementedby the computer system 100 to perform the various tasks performed by thecomputer system 100. In some embodiments, one of the programs 212 is anoperating system of the computer system 100. The data 214 may be anydata stored by the computer system 100, and may include data used bycomputer system 100 as part of the execution of the one or more programs210.

In some embodiments, all of memory 140 may be encrypted. In otherembodiments, some of the memory 140 may be encrypted (e.g., firstpartition 210 is encrypted but second partition 220 is unencrypted,first partition 210 is unencrypted but second partition 220 isencrypted, various portions of first partition 210 and second partition220 are encrypted but other portions of either or both are not). Inembodiments where some or all of memory 140 is encrypted, cryptographicoperations used to encrypt information before storage in memory 140 orto decrypt encrypted portions of memory 140 during a memory access maybe performed with second processor circuit 202 as discussed herein.

The one or more second processor programs 222 include instructions thatwhen executed by second processor circuit 202 cause second processorcircuit 202 to perform the operations associated with the tasksperformed in a power-down state as discussed herein. For example, suchoperations include the operations discussed herein with reference toFIGS. 5-10 . In some embodiments, a second processor program 222 is asecond processor circuit operating system that aids in the execution ofthe various tasks in a power-down state and/or performs the memorymanagement functions discussed herein. Second processor data 224 may beany data that is used by second processor circuit 202 as part of theexecution of the one or more second processor programs 222. In someembodiments, second processor data 224 includes cryptographicinformation used to authenticate a remote computer system as discussedherein or other authentication information (e.g., a user name andpassword associated with a user of the computer system 100).

In some embodiments, the one or more second processor programs 222 maybe executed independently of the operating system of the computer system100 (e.g., a program 210). In this way, the second processor circuit 202may be configured to perform a task (e.g., one indicated incommunication 150) in a power-down state independent of the operatingsystem of the computer system 100. As used herein, the phrase“independently of the operating system” means that the program 222 maybe executed by the second processor circuit 202 regardless of theinformation stored in the first partition 210 and without any assistancefrom the operating system stored in first partition 210. In someembodiments, the program 222 may be executed even if, for example, theoperating system of the computer system 100 has been corrupted, damaged,or uninstalled and a hostile operating system has been installed.

In some embodiments, second processor circuit 202 is configured toperform cryptographic operations for the computer system 100. In some ofsuch embodiment, some or all of memory 140 is encrypted, and thecryptographic operations include encrypting data to be stored in memory140 and decrypting encrypted data during a memory access. In someembodiments, the cryptographic operations include authenticating aremote computer system that has sent a request to computer system 100 ordecrypting an encrypted request sent by a remote computer system. Insome embodiments, the cryptographic operations include authenticatingrequests from a user to transition to a power-up state (e.g., byauthenticating a use name, password, personal identification number,biometric information). Performing a cryptographic operation may includeaccessing second processor data 224 that includes cryptographicinformation (e.g., a stored security key used to authenticate a remotecomputer system as discussed herein) or other authentication information(e.g., a user name and password associated with a user of the computersystem 100).

In some embodiments, first processor circuit 200 is configured to accessmemory 140 through second processor circuit 202. In at least some ofsuch embodiments, the second processor circuit 202 is configured tocontrol memory 140 for both first processor circuit 200 and secondprocessor circuit 202. In such embodiments, this arrangement preventsfirst processor 200 from accessing second partition 220 of memory 140.In such embodiments, a malicious program being executed by firstprocessor circuit 200 cannot alter the functions of the second processorcircuit 202 as it executes the one or more second processor programs222, including the second processor programs 222 that execute thevarious tasks in a power-down state discussed herein (e.g., FIGS. 5-10). In such embodiments, this allows the tasks performed in a power-downstate to be executed independently of the operating system of thecomputer system 100. In some embodiments, the first processor circuit200 initiates a request for operating system data (e.g., data 214)stored in the memory 140. In such embodiments, the second processorcircuit 202 accesses the operating system data (e.g., data 214) storedin the memory 140 in response to such a request. In such embodiments,the second processor circuit 202 sends the accessed data to the firstprocessor circuit 200.

In operation, computer system 100 is configured, in response toreceiving a user-initiated power-down request, to enter a power-downstate in which power is removed from a first portion of the computersystem 100 that includes first processor circuit 100, but in which poweris still supplied to a second portion of computer system 100 thatincludes second processor circuit 202 and network interface 122.Further, the computer system 100 is configured, in the power-down state,to perform, by second processor circuit 202 and without exiting thepower-down state, a task specified by a communication 150 received vianetwork interface 122. Further still, computer system 100 is configuredsuch that second processor circuit 202 and network interface 122 are notable to be turned off via a request initiated by the user.

In some embodiments, computer system 100 is configured such that thesecond processor circuit 202 and network interface 122 are not able tobe turned off via a user-initiated software request for computer system100 to enter the power-down state or a user manipulation of a powercontrol device 130 (e.g., a power button). For example, a user maydecide that he or she is done using computer system 100 for the momentand enter a shutdown command (e.g., with a keyboard or pointing device)to the operating system of computer system 100. In such embodiments, theshutdown command causes the computer to transition from a power-up stateto a power down state and appear “turned off” to the user, but is stillresponsive to commands 150 received via network interface 122 asdiscussed herein. Such a shutdown command will not cause secondprocessor circuit 202 and network interface 122 to lose power. Asdiscussed herein, memory 140 may also receive power during thepower-down state if the task to be performed in the power-down stateinvolves accessing memory 140. In some embodiments, the user may only beable to remove power to second processor circuit 202 and networkinterface 122 by physically disconnecting the power supply of thecomputer system 100 (e.g., by removing a battery, unplugging thecomputer system from a wall outlet, etc.). Thus, in various embodimentsof computer system 100, there is no software command or hardware controlthat permits the user to power down certain portions of computer system100.

In some embodiments, the task to be performed in the power-down statemay be a remote power-up request. In such an embodiment, the taskincludes initiating a transition from the power-down state to a power-upstate in which power is applied to the first portion of computer system100 and the second portion of computer system 100. In some of suchembodiments, a user may initiate the transition by causing the command150 to be sent to the network interface 122 (e.g., by accessing a remotecomputer system and requesting that the remote computer system send sucha command 150).

Referring now to FIG. 3 , a block diagram is depicted showing furtherdetail of the I/O devices 120 of a computer system 100 in accordancewith various embodiments. In various embodiments, computer system 100includes a network interface 122, power control device 130, geolocator300, image capture device 302, user interface 304, and microphone 306.While only one of each kind of I/O device 120 is shown in FIG. 3 , invarious embodiments computer system 100 may include more than one ofsome or all of the I/O devices 120 shown in FIG. 3 (e.g., more than oneimage capture device 302). In some embodiments, computer system 100 doesnot include all of the I/O devices 120 depicted in FIG. 3 (e.g.,computer system 100 does not include a microphone 306). The various I/Odevices 120 depicted in FIG. 3 are merely illustrative and do not limitthe scope of the kind of I/O device 120 that may be coupled to acomputer system 100. Accordingly, a computer system 100 may include I/Odevices 120 that are not shown in FIG. 3 such as peripheral device ports(e.g., headphone jack, USB port, Lightning port), heat sensors,radiation sensors, actuators, relays, motors, lasers, storage devices(e.g. hard drive, optical drive, removable flash drive, storage array,SAN, or their associated controller), etc. In some embodiments, the I/Odevices 120 may be coupled to an input/output interface which interfacesthe I/O devices 120 with the processor circuit 110. In some embodiments,some or all of the I/O devices 120 interface directly with the processorcircuit 110.

Geolocator 300 may be any of a number of devices configured to determinea geographic location of computer system 100. For example, geolocator300 may be a GPS receiver or similar receiver for determining ageographic location based on signals received from a constellation ofsatellites. In some embodiments, the geolocator 300 may be configured todetermine a geographic location (e.g., latitudinal and longitudinalcoordinates) based on signals from terrestrial sources such as cellularphone towers. Additionally, Wi-Fi networks can also be used in someembodiments for geolocation by having a service available over theInternet that knows where a given network is located.

Image capture device 302 may be any of a number of devices configured tocollect visual information such as cameras, photosensors, digitalimaging sensors, etc. Image capture device 302 may record stillphotographs, video, or both. As discussed herein, computer system 100may include more than one image capture device 302. For example, in someembodiments where computer system 100 is a mobile phone or tabletcomputer, computer system 100 may include an image capture device 302 onthe same side of computer system 100 as a display screen and a secondimage capture device 302 on the side of computer system 100 opposite thedisplay screen. Microphone 306 is an audio recording device configuredto receive audio information and convert it to electrical signals forprocessing by processor circuit 110 and/or storage in memory 140.Microphone 306 may be used to record audio and/or interface with theuser (e.g., through the use of voice recognition).

User interface 304 may include any of a number of devices to interfacewith a user of computer system 100 either by receiving information fromthe user, presenting information to the user, or both. For example, insome embodiments, user interface 304 is a touch-display configured topresent visual information to the user and receive information from theuser via touches on the display. In some embodiments, computer system100 includes multiple user interfaces 304 including a keyboard andpointing device (e.g., mouse, trackball, trackpad, etc.) configured toreceive information from the user via button presses, trackballmovement, optical mouse laser sensor, etc. In some embodiments, userinterface 304 includes a display coupled to computer system 100 directlyor indirectly (e.g., coupled to the computer system 100 via networkinterface 122). In some embodiments, a user interface 304 may compriseone or more speakers to present audio information. Additionally oralternatively, a user interface 304 may comprise one or more hapticdevices to present tactile information (e.g., by vibrating).Additionally or alternatively, a user interface 304 may comprise one ormore lights (e.g., one or more LEDs) to present visual information. Inoperation, such embodiments may allow a communication 150 to be sent tocomputer system 100 to play a sound, vibrate, and or flash lights duringa power-down state (e.g., to help a user locate a misplaced or stolencomputer system 100).

Referring now to FIG. 4 , a flowchart is shown illustrating a method 400for performing a task with a computer system in a power-down state.Method 400 is implemented with computer system 100. At block 402,computer system 100 receives a user-initiated power-down request forcomputer system 100. At block 404, in response to the power-downrequest, computer system 100 enters a power-down state in which usercommunication with computer system 100 is disabled, except via a networkinterface 122 of computer system 100 or a power control device 130 ofthe computer system 100, until receiving a user-initiated power-uprequest. At block 406, while computer system 100 is in the power-downstate: computer system 100 receives a communication 150 via networkinterface 122. At block 408, while computer system 100 is in thepower-down state: in response to the communication 150, a processingelement (e.g., processor circuit 110) of computer system 100 perform atask specified by the communication 150 without exiting the power-downstate. At block 410, in response to subsequently receiving theuser-initiated power-up request, computer system 100 enters a power-upstate in which user communication with computer system 100 is restoredvia I/O devices 120 of computer system 100 other than the networkinterface 122 or power control device 130.

In some embodiments, method 400 may include additional operations. Forexample, in some embodiments, prior to receiving the user-initiatedpower-down request, computer system 100 (e.g., with network interface122) establishes a communication link with a remote computer system. Insuch embodiments, while computer system 100 is in the power-down state:the computer system maintains the communication link with the remotecomputer system; and receives the communication from the remote computersystem via the maintained communication link.

With general reference to FIGS. 5-10 , blocks 406 and 408 of method 400may include any of a number of various operations related to thecommunication 150 received from a remote computer system and the task tobe performed by computer system 100 during the power-down state. FIG. 5relates to embodiments where the task relates to uploading data fromcomputer system 100 to a remote computer system. FIG. 6 relates toembodiments where the task relates to downloading data from a remotecomputer system and storing the data on computer system 100. FIG. 7relates to embodiments where the task relates to disabling computersystem 100. FIG. 8 relates to embodiments where the task relates todeleting one or more files stored in memory 140 of computer system 100.FIG. 9 relates to embodiments where the task relates to performing acheck on memory 140 of the computer system 100. FIG. 10 relates toaccessing an I/O device 120 of computer system 100. The examplesdiscussed in relation to FIGS. 5-10 are not limiting, however, andcomputer system 100 may execute tasks in a power-down state other thanthose discussed in connection to FIGS. 5-10 .

Referring again to FIG. 5 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 500, computer system 100 receives a request from aremote computer system to upload data to the remote computer system. Insome embodiments, the request included in communication 150 is for datathat is currently stored (or believed by the remote computer system tobe currently stored) at computer system 100. For example, in suchembodiments the data to be uploaded may be one or more files relating tocontact information stored at computer system 100. In other embodiments,the request included in communication 150 is for data that computersystem 100 must collect (e.g., with an I/O device 120) before uploading.The communication 150 may indicate where the requested is to be uploaded(e.g., to a particular remote computer system), or the data may beuploaded to the remote computer system from which the communication 150was received.

At block 502, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 510, computer system 100 determines whether performing therequest to upload data requires accessing an input device to gatherdata. This determination may be based on one or more indicators includedin communication 150. Such indicators may specify what kind of data isto be uploaded, whether the remote computer system believes thatcomputer system 100 already has the data stored in memory 140, and/orwhether an I/O device 120 should be accessed. If computer system 100determines to access an I/O device 120, method 400 proceeds to block512. If not, method 400 proceeds to block 514.

At block 512, computer system 100 accesses one or more I/O devices 120to gather data and stores the gathered data in memory 140. Accessing theone or more I/O device 120 includes computer system 100 providing powerto the accessed I/O devices 120 and memory 140 as is useful toaccomplish the requested task in the power-down state. As discussedherein with reference to FIG. 3 , the I/O devices 120 may be any of anumber of devices including network interface 122, power control device130, geolocator 300, image capture device 302, user interface 304,microphone 306, or other devices which may receive input or presentoutput. In some embodiments, the task includes determining a geographiclocation of computer system 100 (e.g., by accessing a geolocator 300)and storing said geographic location in memory 140. In some embodimentswhere computer system 100 includes an image capture device 302, the taskincludes using image capture device 302 to capture one or more images(e.g., still images, video) and storing said images in memory 140. Inaddition to capturing images, that computer system 100 may captureadditional contextual information for the images such as the geographiclocation where the images were captured (e.g., with a geolocator 300) orsound (e.g., with a microphone 306). In some embodiments where computersystem 100 includes a microphone 306, the task includes using themicrophone 306 to capture sounds and store said sound in memory 140.

At block 514, computer system 100 accesses memory 140. Accessing memory140 includes providing power to memory 140 as is useful to accomplishthe requested task in the power-down state. Accessing memory 140includes identifying the data to be sent to the remote computer systemand preparing it for upload. In some embodiments, some or all of thememory 140 is encrypted, and in such embodiments accessing the memory140 includes the second processor circuit 202 performing one or morecryptographic operations (e.g., decrypting the stored data to be sent tothe remote computer system). At block 516, computer system 100 sends,via network interface 122, the requested data (e.g., one or more filesin the memory 140) to the remote computer system. In embodiments wherethe requested data is one or more images captured with image capturedevice 302, the sending includes sending the one or more images to aremote computer system via the network interface 122. In embodimentswhere the requested data is the geographic location of the computersystem 100, the sending includes sending the geographic location to theremote computer system via network interface 122.

The operations disclosed herein with reference to FIG. 5 may enablecomputer system 100 to perform any of a number of useful tasks relatedto locating a misplaced or stolen computer system 100 or related toremotely backing up data that is stored on computer system 100 to aremote computer system. In the former case, even if a malefactor inputsa command to transition computer system 100 to a power-down state (e.g.,by “turning off” computer system 100 using a keyboard of computer system100), the owner of computer system 100 may be able to determine itsgeographic location to aid retrieval or identify the malefactor (e.g.,using captured images, using recorded sound). In the latter case, theowner of computer system 100 may be able to retrieve valuable datastored on computer system 100 even if the computer system 100 cannot belocated or retrieved as long as the computer system 100.

Referring again to FIG. 6 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 600, computer system 100 receives a request from aremote computer system to download data from the remote computer system.For example, the request may indicate that certain files stored on theremote computer system (e.g., one or more images, one or more textfiles, one or more entries for a calendar, etc.) that computer system100 is to download and store in memory 140 while in a power-down state.The communication 150 may indicate where the requested is to bedownloaded from (e.g., to a particular remote computer system), or thedata may be from the remote computer system from which the communication150 was received.

At block 602, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 610, computer system 100 accesses, via network interface 122,the remote computer system and downloads data from the remote computersystem. At block 612, computer system 100 stores the downloaded data inmemory 140. In some embodiments, some or all of the memory 140 isencrypted, and in such embodiments accessing the memory 140 includes thesecond processor circuit 202 performing one or more cryptographicoperations (e.g., encrypting the downloaded data before storing it inmemory 140).

The operations disclosed herein in with respect to FIG. 6 may enablecomputer system 100 to perform any of a number of useful tasks relatedto ensuring that the data stored on computer system 100 is up-to-date. Auser may use multiple computer systems 100 (e.g., a smartphone, a tabletcomputer, and a laptop computer). If the user, for example, has set up ashared directory to be propagated across multiple computer systems 100,the operations discussed in relation to FIG. 6 may allow the user toensure that information in the shared directory has been propagated toall of the relevant computer system 100, even if such computer systems100 are in power-down states. In some embodiments, the operationsdiscussed with respect to FIG. 6 may enable computer system 100 todownload updates at a convenient time when computer system 100 is notbeing used by the user and is in a power-down state. In suchembodiments, if a remote computer system has an update to a programinstalled on computer system 100 (e.g., a program 212), the remotecomputer system may request that computer system 100 download the updatein the power-down state for subsequent installation (e.g., when computersystem 100 is in a power-up state).

Referring again to FIG. 7 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 700, computer system 100 receives a disablerequest from a remote computer system. In embodiments where computersystem 100 can be disabled a plurality of ways as discussed herein, thedisable request indicates how the computer system 100 should disableitself.

At block 702, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 710, computer system 100 disables itself. The disabling may bea partial disabling (i.e., some components of computer system 100 arestill functioning) or a complete disabling (e.g., the processor circuit110, I/O devices 120, and memory 140 are all disabled). The disablingmay be reversible (e.g., computer system 100 may be reenabled afterreceiving a subsequent message, having parts replaced, etc.) orirreversible (e.g., the processor circuit 110 and memory 140 are damagedsuch that they cannot be repaired). The disabling may be accomplished inany of a number of ways. In some embodiments where processor circuit 110includes a first processor circuit 200 and a second processor circuit202 and second processor circuit 202 controls memory 140, disablingcomputer system 100 may include second processor circuit 202 preventingfirst processor circuit 200 from accessing memory 140. In someembodiments, disabling computer system 100 may include physicallydamaging or destroying one or more components such as fuses such thatcomputer system 100 may be partially or completely inoperable until suchcomponents are repaired or replaced. In other embodiments, disabling thecomputer system 100 includes locking memory 140 from accesses by anyportion of the processor circuit 110 without certain cryptographicinformation. Such cryptographic information may be generated by theprocessing circuit 110 in any of a number of ways (e.g., a random numbergenerator) and the cryptographic information may be sent to the remotecomputer system without computer system 100 maintaining a copy.

At block 712, computer system 100 sends, via network interface 122, aconfirmation that the computer system 100 has been disabled. Theconfirmation may include information (e.g., cryptographic information)needed to reenable computer system 100 (e.g., to undo the disablingperformed at block 710). In some embodiments, however, such aconfirmation may not be sent if computer system 100 has been completelydisabled as discussed herein.

The operations disclosed herein with reference to FIG. 7 may enablecomputer system 100 to perform any of a number of useful tasks relatedto ensuring data security and hardware security. For example, if acomputer system 100 has been misplaced or lost, the data stored inmemory 140 may be protected by disabling access to memory 140 or entirecomputer system 100. In other examples, if one or more components ofcomputer system 100 is an experimental prototype or includes hardwarewith national security classification (e.g., Top Secret classification),such components may be destroyed after receiving a communication 150from a remote computer system even if computer system 100 has beenplaced in a power-down state.

Referring again to FIG. 8 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 800, computer system 100 receives a delete requestfrom a remote computer system. The delete request indicates one or morefiles stored in memory 140 to be deleted.

At block 802, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 810, computer system 100 accesses memory 140 and deletes one ormore files stored in memory 140. Accessing memory 140 includes providingpower to memory 140 as is useful to accomplish the requested task in thepower-down state. Accessing memory 140 includes identifying the one ormore files to be deleted and erasing the one or more files from memory140. Deleting the one or more files may include completely erasing theone or more files from memory 140. In embodiments where memory 140includes a first partition 210 and a second partition 220 and a firstprocessor circuit 200 has access to the first partition 210 but not thesecond partition 220, deleting may include deleting the one or morefiles from the first partition 210 with copies retained on the secondpartition 220. In such embodiments, the files deleted from firstpartition 210 may be restored from the copies on second partition 220later (e.g., after receiving a restore message from a remote computersystem). In some embodiments, the copies stored on second partition 220may be encrypted and will need to be decrypted before being copied backover to first partition 210.

At block 812, computer system 100 sends, via network interface 122, aconfirmation that the one or more files have been deleted. Theconfirmation may include information (e.g., cryptographic information,memory location information) needed to restore the deleted information.For example, if the confirmation included cryptographic information

The operations disclosed herein with reference to FIG. 8 may enablecomputer system 100 to perform any of a number of useful tasks relatedto ensuring data security. For example, if a computer system 100 hasbeen misplaced or lost, the data stored in memory 140 may be protectedby deleting it from the computer system 100.

Referring again to FIG. 9 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 900, computer system 100 receives a memory checkrequest from a remote computer system. The memory check request mayindicate a specific type of memory check to be performed (e.g., amalicious code check) or a general memory check. In some embodiments,the memory check request includes information about a particular kind ofmalicious code (e.g., a new computer virus) and a request to checkmemory 140 of the computer system for that particular malicious code.

At block 902, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 910, computer system 100 access memory 140 to check asindicated in the request. The memory check may include checking for oneor more of malicious code or software, memory errors, or a memory statusof memory 140. Checking for malicious code or software includesdetermining whether one or more known instances of malicious software isstored in memory 140 or left evidence that such malicious software hadbeen previously been stored. Upon detecting malicious software, checkingfor malicious code or software may also include quarantining themalicious software, deleting it, and/or flagging it for furtherattention (e.g., when computer system 100 has entered a power-up state).Checking for memory errors includes determining whether portions ofmemory 140 show signs of problems relating to memory. For example,portions of memory 140 may have been corrupted as a result of animproper transition from a power-up state (e.g., due to a softwarecrash, due to a power outage). Additionally, portions of memory 140 mayshow signs that said portions of memory 140 are inoperable due todamage. Checking memory status includes determining information aboutmemory 140 and may include determining a capacity of memory 140, theamount of data stored in memory 140, the type of data (e.g., applicationdata, media data, etc.) stored in memory 140, etc.

At block 912, computer system 100 sends, via network interface 122, aconfirmation that indicate the results of the memory check request. Theconfirmation may include whether malicious software was detected,whether any action was taken to address malicious software that wasfound, whether memory errors were detected, the status of memory 140,what actions if any were taken to address malicious software or memoryerrors, and whether further attention is needed.

The operations disclosed herein with reference to FIG. 9 may enablecomputer system 100 to perform any of a number of useful tasks relatedto data security and data reliability. For example, if computer system100 has been affected by malicious code, it may be preferable to addressthe malicious code in a power-down state rather than a power-up state.

Referring again to FIG. 10 , a flowchart is depicted showing furtherdetail about blocks 406 and blocks 408 of FIG. 4 in accordance with someembodiments. At block 1000, computer system 100 receives an I/O devicerequest from a remote computer system.

At block 1002, computer system 100 authenticates the request. In someembodiments where one or more remote computer systems have beenauthenticated previously when computer system 100 was in a power-upstate as discussed herein, authenticating the request includesdetermining whether communication 150 was received from one of theauthenticated remote computer systems. In such embodiments, the requestmay be authenticated if the communication 150 including the request wasreceived from an authenticated remote computer system. Additionally oralternatively, authenticating the request may include analyzing thecommunication 150 including the request to determine whether thecommunication 150 includes authenticating markers such as a codesignifying that the communication 150 is for a request to be performedin a power-down state or cryptographic information. Additionally oralternatively, authenticating the request may include computer system100 interrogating the remote computer system indicated as requesting thetask to determine whether the remote computer system in fact sent therequest or whether a third-party computer system is spoofing the addressof the remote computer system.

At block 1010, computer system 100 accesses the one or more I/O devices120 indicated in the request to perform the task (e.g., have a I/Odevice 120 do a certain action). The I/O device request may indicate aspecific I/O device 120 and what action such I/O device 120 is requestedto take. For example, the I/O device request may indicate one or moreuser interfaces 304 and the action such user interfaces 304 should take(e.g., turning a light on, playing a sound, vibrating) during thepower-down state. In some embodiments, the I/O device request mayindicate a relay that should be turned on or off, a motor that should beturned on or off, an actuator that should be triggered, etc. Suchrelays, motors, actuators, etc. may be used by computer system 100control machinery or equipment, for example.

At block 1012, computer system 100 sends, via network interface 122, aconfirmation that indicates that the one or more I/O devices 120 wasaccessed as requested. The confirmation may include indicators of whichI/O devices 120 were accessed and what actions were performed. Theconfirmation may also include indicators showing that one or more I/Odevices 120 failed to perform the requested action.

The operations disclosed herein with reference to FIG. 10 may enablecomputer system 100 to perform any of a number of useful tasks relatedto locating a lost device or performing a critical task in a power-downstate. For example, a user may request that a remote computer systemsend a message to a misplaced computer system 100 and request that themisplaced computer system 100 perform actions that may make it easier tolocate (e.g., by flashing a light, making a sound, vibrating, acombination). Additionally, if computer system 100 is used to controlmachinery or equipment, and computer system 100 has entered a power-downstate, the remote computer system may be able to instruct computersystem 100 to perform certain operations with said machinery orequipment even while the computer system is still in the power-downstate.

While FIGS. 5-10 depict various operations performed by computer system100 in a power-down state, some operations depicted therein may beomitted and others may be added. For example, a request to perform atask may not be authenticated upon receipt as in blocks 502, 602, 702,809, 902, and 1002. In such embodiments, authentication may not benecessary, for example, because computer system 100 communicates withremote computer systems on a secure network. Additionally, computersystem 100 may send additional communications to the remote computersystem to, for example, make reports relating to the progress ofperforming the task while it is being performed and/or after the task iscompleted.

Although specific embodiments have been described above, theseembodiments are not intended to limit the scope of the presentdisclosure, even where only a single embodiment is described withrespect to a particular feature. Examples of features provided in thedisclosure are intended to be illustrative rather than restrictiveunless stated otherwise. The above description is intended to cover suchalternatives, modifications, and equivalents as would be apparent to aperson skilled in the art having the benefit of this disclosure.

The scope of the present disclosure includes any feature or combinationof features disclosed herein (either explicitly or implicitly), or anygeneralization thereof, whether or not it mitigates any or all of theproblems addressed herein. Accordingly, new claims may be formulatedduring prosecution of this application (or an application claimingpriority thereto) to any such combination of features. In particular,with reference to the appended claims, features from dependent claimsmay be combined with those of the independent claims and features fromrespective independent claims may be combined in any appropriate mannerand not merely in the specific combinations enumerated in the appendedclaims.

What is claimed is:
 1. A computer system, comprising: a main memory; acentral processing unit (CPU) including a first CPU portion and a secondCPU portion, wherein the first and second CPU portions are configured toexecute, in a power-up state of the computer system, programinstructions stored in the main memory; and a hardware interface;wherein the computer system, in a power-down state, is configured todisable the first CPU portion and maintain power to the second CPUportion such that, in response to data received via the hardwareinterface, the second CPU portion is configured to perform a taskspecified by the data without exiting the power-down state.
 2. Thecomputer system of claim 1, wherein the hardware interface is a networkinterface.
 3. The computer system of claim 1, wherein the computersystem is a mobile computing device.
 4. The computer system of claim 1,wherein the computer system includes an image capture device, andwherein the task specified by the data includes using the image capturedevice to capture one or more images and sending the one or more imagesto a remote computer system.
 5. The computer system of claim 1, whereinthe first CPU portion is configured to access, in the power-up state, anoperating system in the main memory via the second CPU portion.
 6. Thecomputer system of claim 1, further comprising a power control device,wherein the computer system, in response to receiving a power-up requestvia the power control device, is configured to exit the power-down stateand enter the power-up state in which the computer system, in thepower-up state, is configured to: respond to user commands via one ormore of a keyboard, point device, or touch display; and cause a userinterface to be displayed to a user.
 7. The computer system of claim 6,wherein the power control device comprises one or more of a power switchor power button configured to send a power-up signal to the computersystem.
 8. The computer system of claim 1, wherein the task includesaccessing the main memory and sending one or more files in the mainmemory to a remote computer system over a network.
 9. The computersystem of claim 1, wherein the task includes determining a geographiclocation of the computer system and sending the geographic location to aremote computer system over a network.
 10. A method, comprising: duringa power-up state of a computing device: executing, by a first CPUportion of a processor circuit of the computing device, first programinstructions from a main memory of the computing device; executing, by asecond CPU portion of the processor circuit of the computing device,second program instructions from the main memory of the computingdevice; entering, by the computing device, a power-down state in whichthe first CPU portion, but not the second CPU portion, is disabled; andwhile the computing device is in the power-down state: receiving, by ahardware interface of the computing device, a communication; andperforming, by the second CPU portion, a task responsive to thecommunication without exiting the power-down state.
 11. The method ofclaim 10, wherein the hardware interface is a network interface.
 12. Themethod of claim 10, wherein the executing the first program instructionsincludes the first CPU portion accessing, in the power-up state, anoperating system in the main memory via the second CPU portion.
 13. Themethod of claim 10, further comprising: prior to entering the power-downstate, authenticating a remote computer system; and wherein receivingthe communication includes determining whether the communication wasreceived from the authenticated remote computer system.
 14. The methodof claim 10, further comprising: prior to entering the power-down state,establishing a communication link with a remote computer system; andwherein the communication is received via the established communicationlink.
 15. A computer system, comprising: a central processing unit (CPU)including a first CPU portion and a second CPU portion; a main memory,wherein the first and second CPU portions are configured to execute, ina power-up state of the computer system, program instructions stored inthe main memory; and a hardware interface; wherein the computer systemis configured to enter a power-down state in which power is supplied toa second part of the computer system that includes the second CPUportion and the hardware interface, but not to a first part of thecomputer system that includes the first CPU portion; and wherein, duringthe power-down state, the computer system is configured to perform, bythe second CPU portion and without exiting the power-down state, a taskspecified by a communication received via the hardware interface. 16.The computer system of claim 15, wherein the hardware interface is anetwork interface, and wherein the computer system is configured suchthat the second part of the computer system is not able to be turned offvia a request initiated by a user of the computer system.
 17. Thecomputer system of claim 15, wherein the first CPU portion is configuredto access, in the power-up state, an operating system in the main memoryvia the second CPU portion.
 18. The computer system of claim 17, whereinthe task includes the second CPU portion preventing the first CPUportion from executing, during the power-up state, program instructionsstored in the main memory.
 19. The computer system of claim 15, whereinthe task includes accessing one or more files in the main memory andsending the one or more files to a remote computer system over anetwork.
 20. The computer system of claim 15, wherein the main memoryincludes a first memory partition accessible by the first and second CPUportions, and a second memory partition accessible by the second CPUportion, but not the first CPU portion.